//package com.example.md.mddemo.repo;
//
//import org.springframework.data.domain.Page;
//import org.springframework.data.domain.PageImpl;
//import org.springframework.data.domain.Pageable;
//import org.springframework.data.mongodb.core.MongoOperations;
//import org.springframework.data.mongodb.core.query.Criteria;
//
//import org.springframework.data.mongodb.core.query.Query;
//import org.springframework.data.mongodb.repository.query.MongoEntityInformation;
//import org.springframework.data.mongodb.repository.support.SimpleMongoRepository;
//
//import java.io.Serializable;
//import java.util.List;
//import java.util.Map;
//
///**
// * Copyright © 2018年 ziniuxiaozhu. All rights reserved.
// *
// * @Author 临江仙 hzqiuxm@163.com
// * TODO:亲爱的临江仙，请写点注释吧...........
// * @Date 2018/8/14 17:51
// */
//public class CommonMongoRepositoryImpl<T, ID extends Serializable> extends SimpleMongoRepository<T,ID> implements BaseRepository<T,ID> {
//
//
//    protected final MongoOperations mongoTemplate;
//
//    protected final MongoEntityInformation<T, ID> entityInformation;
//
//    public CommonMongoRepositoryImpl(MongoEntityInformation<T, ID> metadata, MongoOperations mongoOperations) {
//        super(metadata, mongoOperations);
//
//        this.mongoTemplate=mongoOperations;
//        this.entityInformation = metadata;
//    }
//
//    protected Class<T> getEntityClass(){
//        return entityInformation.getJavaType();
//    }
//
//    @Override
//    public void batchSave(List<T> obj) {
//
//    }
//
//    @Override
//    public void batchDelete(List<ID> pks) {
//
//    }
//
//    @Override
//    public void update(ID id, Map<String, Object> updateFieldMap) {
//
//    }
//
//    @Override
//    public void update(Map<String, Object> queryParamMap, Map<String, Object> updateFieldMap) {
//
//    }
//
//    @Override
//    public Page<T> find(Query query, Pageable p) {
//
//        long total=mongoTemplate.count(query, getEntityClass());
//        List<T> list=mongoTemplate.find(query.with(p), getEntityClass());
//
//        return new PageImpl<T>(list, p, total);
//    }
//
//    @Override
//    public Page<T> find(Criteria criteria, Pageable p) {
//        return find(new Query(criteria), p);
//    }
//}
